package Year22_Month07.day02;

import java.util.Deque;
import java.util.LinkedList;
import java.util.List;

public class 子集 {
    List<List<Integer>> resList = new LinkedList<>();
    Deque<Integer> list = new LinkedList<>();


    public List<List<Integer>> subsets(int[] nums) {
        backstracking(nums,0);
        return resList;
    }

    public void backstracking(int[] nums,int index){
        //不论啥时候哈，直接加入到结果集当中
        resList.add(new LinkedList<>(list));
        //这里可能会有人问：你没有终止条件嘛？起始是有的，就是当index走到nums的终点的时候
        //也就是下面的这个循环根本进不去的时候
        for (int i = index; i < nums.length; i++) {
            list.add(nums[i]);
            backstracking(nums,i + 1);
            list.removeLast();
        }
    }
}
